﻿using System;
using System.Threading;

namespace ELW.Library.Math.Calculators.Standard
{
    class Calculator_rndE : IOperationCalculator
    {
        #region IOperationCalculator Members

        public double Calculate(params double[] parameters)
        {
            if (parameters == null)
                throw new ArgumentNullException("parameters");
            if (parameters.Length != 1)
                throw new ArgumentException("Это функция с одним параметром. Количество параметров должно быть равным 1.", "parameters");
            //
            double res = 0;
            double U = RandomStatic.NextDouble();
            res = (-1 / parameters[0]) * System.Math.Log(1 - U);
            return res;
        }

        #endregion
    }
}
